package controleur;

import java.util.TimerTask;

import modele.Map;
import modele.Batiment.Batiment;
import modele.Unite.UniteAttaquante;

public class TacheAttaqueCorps extends TimerTask{
	int nbrMillisecondesAvantRepetition;
	UniteAttaquante uniteAttaquante;
	Controleur controleur;
	Map map;
	Batiment batiment;						//batiment à attaquer
	
	public TacheAttaqueCorps(Controleur c, int tempsDAttenteMillisecondes, UniteAttaquante unit, Map m, Batiment bat)
	{
		controleur = c;
		nbrMillisecondesAvantRepetition = tempsDAttenteMillisecondes;
		uniteAttaquante = unit;
		map = m;
		batiment = bat;
	}
	
	@Override
	public void run() {
		if(uniteAttaquante != null && uniteAttaquante.getPointsDeVie() > 0)
		{
			//System.out.println("L UNITE ATTAQUE");
			if(batiment.getPointsDeVie() > 0)//si le batiment a encore des points alors on l'attaque
			{
				//on y inflige des dégâts
				batiment.recevoirDegats(uniteAttaquante.getPuissanceAttaque());
				//on relance l'attaque via le timer
				new MonTimer(new TacheAttaqueCorps(controleur, nbrMillisecondesAvantRepetition, uniteAttaquante, map, batiment), nbrMillisecondesAvantRepetition);
			}
			//System.out.println("ETAT : attaquer : "+controleur.EtreEnTrainDAttaquer());
			//ici il faut chercher un autre batiment et l'attaquer
		}
	}

}
